﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Helpers;
using Model;
using System.Collections.Generic;

namespace FEIStorageSite
{
    public partial class Messages : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DAL.connectionString = "Data Source=" + Server.MapPath("App_Data\\fei_storage.db");
            switch (Request["action"])
            {
                case "post_message":
                    postMessageButton.Visible = false;
                    break;
                default:
                    postMessageTable.Visible = false;
                    break;
            }
        }

        public void MessagesDataPagerPreRender(object sender, EventArgs e)
        {
            List<MessageItem> messages = DAL.GetMessagesList();

            if (messages.Count == 0)
            {
                if (!IsPostBack)
                {
                    error.Text = "Поки що повідомлень немає";
                }
            }
            else
            {
                messagesListView.DataSource = messages;
                messagesListView.DataBind();
            }
        }

        public void MessageButtonClick(object sender, EventArgs e)
        {
            try
            {
                messageCaptcha.ValidateCaptcha(captchaTextBox.Text);
                if (authorNameTextBox.Text == String.Empty)
                {
                    throw new Exception("Введіть ваше ім'я");
                }
                else if (messageTextBox.Text == String.Empty)
                {
                    throw new Exception("Введіть повідомлення");
                }
                else if (!messageCaptcha.UserValidated)
                {
                    throw new Exception("Ви неправильно ввели текст з малюнка");
                }
                else
                {
                    MessageItem message = new MessageItem(-1, authorNameTextBox.Text, messageTextBox.Text, DateTime.Now, Request.ServerVariables["REMOTE_ADDR"]);
                    DAL.AddMessage(message);
                    Response.Redirect("Messages.aspx");
                }
            }
            catch (Exception exception)
            {
                error.Text = "Помилка: " + exception.Message;
            }
        }
    }
}
